﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BaHuan.Entities;
using BaHuan.BusinessLayer;
using BaHuan.Common;

namespace BaHuan
{
    public partial class FrmDonViTinh : Form
    {
        DonViTinhMgt donvitinhMgt = new DonViTinhMgt();

        public FrmDonViTinh()
        {
            InitializeComponent();
        }

        private void LoadGridview()
        {
            List<DonViTinh> lstDVT = GetAllDonViTinh();
            dataGridView1.DataSource = null;
            dataGridView1.DataSource = lstDVT;
            dataGridView1.AutoGenerateColumns = false;
        }

        private void FrmDonViTinh_Load(object sender, EventArgs e)
        {
            LoadGridview();

            btnLuu.Enabled = false;
            btnSua.Enabled = false;
            btnXoa.Enabled = false;
            txtDVT.Enabled = false;
        }

        private List<DonViTinh> GetAllDonViTinh()
        {
            ResultObj result = donvitinhMgt.GetAllDonViTinh();
            List<DonViTinh> lstDVT = (List<DonViTinh>)result.Result;
            return lstDVT;
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            txtDVT.Enabled = true;
            txtDVT.Text = "";

            lbID.Text = "";
            btnLuu.Enabled = true;
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            string tenDVT = dataGridView1.CurrentRow.Cells[1].Value.ToString();
            txtDVT.Text = tenDVT;
            string id = dataGridView1.CurrentRow.Cells[0].Value.ToString();
            lbID.Text = id;
            btnSua.Enabled = true;
            btnXoa.Enabled = true;
            btnLuu.Enabled = false;
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (txtDVT.Text == "")
            {
                MessageBox.Show("Vui lòng nhập đơn vị tính");
                return;
            }
            DonViTinh dvt = new DonViTinh();
            //Save new
            if (lbID.Text == "")
            {
                dvt.TenDVT = txtDVT.Text;
                donvitinhMgt.SaveNewDonViTinh(dvt); 
            }
            //Edit
            else
            {
                dvt.Id = Convert.ToInt32(lbID.Text);
                dvt.TenDVT = txtDVT.Text;
                donvitinhMgt.UpdateDonViTinh(dvt);
            }
            btnSua.Enabled = true;
            btnXoa.Enabled = true;
            LoadGridview();
            MessageBox.Show("Đã lưu", "Thông báo");
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            btnLuu.Enabled = false;
            btnSua.Enabled = false;

            if (lbID.Text != "")
            {
                DialogResult result;
                result = MessageBox.Show("Bạn có chắc chắn muốn xóa đơn vị tính này không?", "Xóa đơn vị tính", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    try
                    {
                        DonViTinh dvt = new DonViTinh();
                        dvt.Id = Convert.ToInt32(lbID.Text);
                        dvt.TenDVT = txtDVT.Text;
                        donvitinhMgt.DeleteDonViTinh(dvt);
                        MessageBox.Show("Đã xóa","Thông báo");
                        LoadGridview();
                    }
                    catch
                    {
                        MessageBox.Show("Thao tác không thành công","Thông báo");
                    }
                }
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            btnLuu.Enabled = true;
            btnXoa.Enabled = false;
            txtDVT.Enabled = true;
        }

        private void btnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
